home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
tmp
/
customization-scripts
/
customize
< prev
next >
Wrap
Text File
|
2009-02-04
|
6KB
|
175 lines
#!/bin/bash
###################################################################################
# UCK - Ubuntu Customization Kit #
# Copyright (C) 2006-2009 UCK Team #
# #
# UCK is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# UCK is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with UCK. If not, see <http://www.gnu.org/licenses/>. #
###################################################################################
function failure()
{
echo "$@"
exit 1
}
function prepare_install()
{
#try 2 times to avoid slow proxies failures
apt-get update || apt-get update || failure "apt-get update failed, error=$?"
}
function install_packages()
{
apt-get install --assume-yes --force-yes "$@" || failure "apt-get install $@ failed, error=$?"
}
function remove_packages()
{
apt-get --purge remove --assume-yes --force-yes "$@" || failure "apt-get remove $@ failed, error=$?"
}
function run_package_manager()
{
echo "Starting package application..."
PACKAGE_APP=`which adept`
PACKAGE_APP_OPTIONS=(--caption "UCK Package Manager")
if [ "$PACKAGE_APP" = "" ]; then
PACKAGE_APP=`which adept_manager`
fi
if [ "$PACKAGE_APP" = "" ]; then
PACKAGE_APP=`which synaptic`
PACKAGE_APP_OPTIONS=(-t "UCK Package manager")
fi
if [ "$PACKAGE_APP" = "" ]; then
dialog_msgbox "Failure" "Unable to find any package manager application"
else
$PACKAGE_APP "${PACKAGE_APP_OPTIONS[@]}"
RESULT=$?
if [ $RESULT -ne 0 ]; then
dialog_msgbox "Failure" "Running package application $PACKAGE_APP failed, error=$RESULT"
fi
fi
}
function run_console()
{
echo "Starting console application..."
CONSOLE_APP=`which konsole`
CONSOLE_APP_OPTIONS=(--caption "UCK customization console" -e /bin/bash)
if [ "$CONSOLE_APP" = "" ]; then
CONSOLE_APP=`which gnome-terminal`
CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash)
fi
if [ "$CONSOLE_APP" = "" ]; then
CONSOLE_APP=`which xfce4-terminal`
CONSOLE_APP_OPTIONS=(-t "UCK customization console" -e /bin/bash)
fi
if [ "$CONSOLE_APP" = "" ]; then
CONSOLE_APP=`which xterm`
CONSOLE_APP_OPTIONS=(-title "UCK customization console" -e /bin/bash)
fi
if [ "$CONSOLE_APP" = "" ]; then
dialog_msgbox "Failure" "Unable to find any console application"
else
$CONSOLE_APP "${CONSOLE_APP_OPTIONS[@]}"
RESULT=$?
if [ $RESULT -ne 0 ]; then
dialog_msgbox "Failure" "Running console application $CONSOLE_APP failed, error=$RESULT"
fi
fi
}
SCRIPT_DIR=`dirname "$0"`
. "$SCRIPT_DIR/gui.sh"
LIVECD_LANGS=`cat "$SCRIPT_DIR/language_packs"`
RUN_MANUAL_CUSTOMIZATIONS=`cat "$SCRIPT_DIR/run_manual_customizations"`
DESKTOP_TYPE=`cat "$SCRIPT_DIR/desktop_type"`
if [ -z "$LIVECD_LANGS" ]; then
failure "Live CD language not set, please put language packs codes (for example: en, pl, fr) into $SCRIPT_DIR/language_packs"
fi
DESKTOP_FLAVOURS=`cat "$SCRIPT_DIR/desktop_types"`
prepare_install || failure "Preparing installation failed, error=$?"
echo "Installing language packs ($LIVECD_LANGS)..."
PACKAGES_TO_INSTALL=""
LANGPACKS_CONCATENATED=""
for LANGPACK in $LIVECD_LANGS; do
PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL language-pack-$LANGPACK language-support-$LANGPACK"
if [ "$DESKTOP_FLAVOURS" ]; then
for FLAVOUR in $DESKTOP_FLAVOURS; do
if [ $FLAVOUR == "gnome" ] || [ $FLAVOUR == "kde" ]; then
PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL language-pack-$FLAVOUR-$LANGPACK"
fi
done
fi
if [ -z "$LANGPACKS_CONCATENATED" ]; then
LANGPACKS_CONCATENATED="$LANGPACK"
else
LANGPACKS_CONCATENATED="$LANGPACKS_CONCATENATED|$LANGPACK"
fi
done
install_packages $PACKAGES_TO_INSTALL || failure "Installing language packs failed, error=$?"
#NOTE: we first install language pack, then remove others as installing language pack might pull packages
#which were not previously present
echo "Removing unnecessary language packages..."
REMOVED_PACKAGES=`dpkg-query --show | cut -f1 | grep -E '^(language-pack|language-support)' | grep -v -E "[-]($LANGPACKS_CONCATENATED)\>"`
remove_packages $REMOVED_PACKAGES || failure "Removing packages failed, error=$?"
if [ "$RUN_MANUAL_CUSTOMIZATIONS" = "yes" ] ; then
#Create DBUS uuid so that KDE4 apps work.
echo "Creating DBUS uuid"
dbus-uuidgen --ensure
while true ; do
CHOICE_PACKAGE_MANAGER="Run package manager"
CHOICE_CONSOLE="Run console application"
CHOICE_EXIT="Continue building"
CHOICE=`dialog_menu "Please choose customization action" "$CHOICE_PACKAGE_MANAGER" "$CHOICE_CONSOLE" "$CHOICE_EXIT"`
RESULT=$?
if [ $RESULT -ne 0 ] ; then
failure "Script cancelled by user"
fi
#workaround for KDE bug (https://bugs.kde.org/show_bug.cgi?id=139025)
CHOICE=`echo "$CHOICE" | grep -v -i kwrited | tail -n1`
echo "CHOICE='$CHOICE'"
if [ "$CHOICE" = "$CHOICE_EXIT" ] ; then
break
elif [ "$CHOICE" = "$CHOICE_PACKAGE_MANAGER" ] ; then
run_package_manager
elif [ "$CHOICE" = "$CHOICE_CONSOLE" ] ; then
run_console
fi
done
fi
echo "Done"